package pe.com.fastfood4.rie.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.ModelAndView;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import pe.com.fastfood4.rie.model.Reserva;
import pe.com.fastfood4.rie.service.ReservaService;

/**
 * ConfirmarReservaController.java
 * es llamado desde includeLeft.jsp (Portada), obtiene las reservas por fecha
 * y se las pasa a confirmarReservaResultado.jsp
 * @author grupo 06 - upc_dew 2010
 * @since 1.0
 * @see ifernandez.aq@gmail.com
 */
public class ConfirmarReservaController implements Controller {

    private ReservaService reservaService;

    public void setReservaService(ReservaService reservaService) {
        this.reservaService = reservaService;
    }

    protected final Log logger = LogFactory.getLog(getClass());

    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception {
        DateTime fechaActual = new DateTime();
        System.out.println("fechaActual : " + fechaActual);

        DateTimeFormatter formatoForPattern1 = DateTimeFormat.forPattern("yyyy/MM/dd");
        DateTimeFormatter formatoLongDate = DateTimeFormat.longDate();

        String fechaActualFormatForPattern1 = formatoForPattern1.print(fechaActual);
        System.out.println("fechaActualFormatForPattern1 = " + fechaActualFormatForPattern1);

        String fechaActualFormatLongDate1 = formatoLongDate.withLocale(Locale.getDefault()).print(fechaActual);
        System.out.println("fechaActualFormatLongDate1 = " + fechaActualFormatLongDate1);

        List<Reserva> reservas = reservaService.getReservasPorFecha(fechaActualFormatForPattern1);

        Map<String, Object> myModel = new HashMap<String, Object>();
        myModel.put("fechaActualFormatLongDate1", fechaActualFormatLongDate1);
        myModel.put("reservas", reservas);

        return new ModelAndView("confirmarReservaResultado", "model", myModel);
    }
}